/**
 * 依次顺序执行一系列任务
 * @param  {...Function} tasks 任务列表，每个任务无参、异步
 * @returns 
 */
function processTasks(...tasks){
    let isRunning = false;
    const result=[];
    let i=0;//当前执行的任务索引
    
    return {
        async start(){
            return new Promise(async (resolve,reject)=>{
                if(isRunning){
                    return;
                }
                isRunning = true;
                // 依次执行任务
                for(;i<tasks.length;i++){
                    console.log('任务开始',i)
                    result.push(await tasks[i]());
                    console.log('任务结束',i)
                    if(!isRunning){
                        return;
                    }
                }
                // 所有任务均完成
                isRunning = false;
                resolve(result);
            
            })
        },
        async pause(){
            isRunning = false;
        },
    }

}
